At one time, computer systems which served a number of users and provided high-volume data storage typically stored the data in a single, centralized storage device which was controlled by a large, "mainframe" computer that acted as a dedicated "server" for controlling the storage device and processing data. The data was supplied to users through terminals which provided access to the central storage device through the mainframe computer. Computer-system architectures have evolved over the years and today a typical computer system employs local processors, such as personal computers and workstations, which not only retrieve data from a central location, but also store the data locally.
Although each local processor may access one or more of the local storage devices to obtain data, such a system may still employ a large central storage facility which often includes a dedicated computer that acts as a server to provide data requested by individual users attached to the computer system. Each user accesses this central facility by downloading data from it to an associated local storage and then retrieving the data from the local storage.
Distributed storage systems are, generally, a more complex arrangement than centralized storage systems because data retrieval must be coordinated between several storage devices, but distributed system do have advantages. For example, in distributed systems, data may be retrieved by a local processing device more quickly from a local storage device than from a remote storage device. Further, computers are typically "bundled", or sold as a package, together with components such as disk (local storage) and local area network (LAN) adapters. These bundled components find only limited use in a centralized system, but distributed systems make greater use of these "existing" system resources, thereby increasing the efficiency and cost-effectiveness of a distributed system when compared to a centralized system. In addition, distributed systems sometimes exhibit a price/performance advantage over centralized systems, e.g. five 200 MFLOP (million floating point operations per second) computers may be less expensive than one 1000 MFLOP computer. Finally, in a centralized system, the input/output (I/O) capability of the centralized server may be a significant factor which limits system performance by creating a "bottleneck" for data flow. In general, storage server I/O capability is less of a limitation for distributed systems because many more servers are available to handle the data flow.
Due to these advantages, distributed computer-system architectures are very common, however, even in these systems, data residing on remote storage devices may require more time to retrieve than data residing on an associated, or local, storage device. In addition, delays in retrieving data from a remote storage device may be lengthened if the data handling capability or "throughput" of any device or facility along the data retrieval path is limited. For example, in distributed systems where the terminals and data storage devices are interconnected by a LAN, a potentially high data transfer rate may, in fact, be limited by the total throughput capability of the LAN or the throughput capability of one, critical, LAN adapter. Also, if data is not distributed among several distributed storage devices in the most advantageous manner, one or more computers may become overloaded while their network partners are idle, thereby causing additional delays.
For most computer applications, the difference in retrieval time between the local and remote devices is not an impediment to successful operation because the end user will not notice this difference. However, delays in accessing remote storage may hinder the use of such a distributed storage system for time-critical applications such as distributed multi-media presentation systems.
In one example of such a distributed multi-media presentation system, segments of digitized video information and digitized audio information together comprise a small portion of a motion picture called a video "clip" which can viewed as a preview of an entire motion picture video cassette. A number of these clips corresponding to different motion pictures may be simultaneously displayed on a number of viewing terminals located in a video store. The clip information may be distributed across the local storage devices associated with the viewing terminals in such a manner that each local storage device contains some fraction of the total number of video clips contained within the system. The storage devices and terminals are connected together by a network so that video and audio information can be continuously read from storage devices and delivered to video playback adapters in the terminals, where screens, or frames of data, are displayed at a rate sufficient to appear as full-motion video on the display (typically 30 frames per second).
Such a system is time-critical because, if video data is not continuously available to a video adapter, the displayed video clip will appear to repeatedly halt temporarily, thus giving an annoying, "jerky", visual appearance to the clip due to video breakup. Interruptions in the accompanying audio signals can be even more annoying than the video breakup.
Attempts have been made to produce multimedia presentation systems which provide distributed storage of video clips. For example, one prior art system comprises a number of computers, each with a local, direct access storage device such as a magnetic disk drive, a compact disk read only memory (CDROM) drive or another digital data storage device. All the computers are attached to a LAN over which they exchange multi-media data. All but one of the computers provide a user interface in the form of a viewing station which comprises an input device, such as a keyboard, for viewer requests and output devices, such as a computer screen and a speaker, for video display and audio output, respectively. The remaining computer controls a large-scale storage device and acts as a video data server for the others.
In the latter known system, the video clip information is not distributed evenly across all of the computers. Instead, small numbers of clips are stored in each local storage device while the video server computer stores the bulk of the video clips and handles all video clip requests that cannot be handled locally. That is, when a viewing station requests information regarding a video clip which is not stored on the local storage device associated with the computer which supports the viewing station, a request is made to the video server which thereupon retrieves the data from its own large-scale storage device and delivers the data to the viewing station's local computer over the LAN.
However, with this prior art arrangement, the video server must handle remote requests from all the computer viewing stations on the system and, consequently, the video server must have significantly greater processing power and higher capacity input/output (I/O) subsystems than the other system computers. Greater computing power and higher capacity I/O subsystems translate into greater expense and the expensive video server, and its associated large-scale storage, are required for all systems, whether there are just a few or as many as twenty or more viewing stations. Even with the extra processing power, each video server can service only a limited number of system computers and, when that number is exceeded (even if only one new computer is added) another expensive server must be added to the system. Thus, the prior art system is not flexible.
Also, because only small numbers of clips are stored in the local storage, a relatively high percentage of the video clips must be retrieved from the server's large-scale storage device. Consequently, much of the processing power of each local computer is devoted to retrieving clips from the server over the LAN. As a result, in prior art designs, each computer could only support one viewing station and the addition of a viewing station necessitated the addition of a computer.
Further, the nature of the demands on the system is such that demand peaks often occur and the potential information transfer rate during these peaks could exceed the capability of one or more system components, leading to interruptions in video clip display. Accordingly, it was not uncommon for a system to be designed with sufficient capacity to accommodate all peak demands so that its components were be underutilized most of the time. Such a system would be unnecessarily expensive.
Since retrieving data stored locally often requires less processing resources than retrieving data from a remote server over a LAN, it is also possible to store copies of all video clips in each local storage. In this case, all data retrieval occurs locally and each computer could support more than one viewing station. But a system which dedicates sufficient mass storage to each computer so that each computer can store all the clips would be prohibitively expensive.